Перед использованием разрешений
код должен запросить их. Тогда легче будет
восстановить работу программы, если в каких-либо
разрешениях программе будет отказано.
Например, рассмотрим случай, когда
требуется получить доступ к нескольким
важным файлам. При этом намного легче в
самом начале работы проверить, есть ли у вас
нужные разрешения, чем потом, когда уже
сделана половина сложной операции,
заниматься восстановлением. Пользователи
должны знать заранее, что некоторые функции
для них будут недоступны. А то случается так
(мы еще будем об этом говорить), что запросы
на разрешения к сборкам использовать вроде
бы можно, но если требуемые разрешения
отсутствуют, то загрузить сборки не удастся.
Трудность здесь в том, что вы, возможно, и не
знаете, какой запрос на разрешения будет
успешным, потому что не известно, какие
сборки при выдаче запроса будут в стеке
иметь свои вызывающие программы.
Не следует запрашивать ненужные
разрешения, и тогда будет сведена к
минимуму вероятность, что код разрушит что-либо
из-за ошибок или злого умысла в компонентах
сторонних производителей. На самом же деле,
чтобы предотвратить такой ущерб, вы можете
ограничить имеющиеся у вас разрешения до
необходимого минимума. Если, например, не
нужно, чтобы программа выполняла на диске
операции чтения и записи в файлах, то
выполнение таких операций нужно запретить.